﻿namespace Jsl.FxCop.Targets
{
    using System.ComponentModel;

    // NOTES:
    // Since the class isn't a component the Browsable, Category, DefaultValue, Description,
    // DesignerSerializationVisibility attributes should not be on fields or properties.
    public class FixInconsistentAttributes_NonComponent
    {
        [Browsable(false)]
        public bool PublicFieldWithBadBrowsable;

        [Browsable(false)]
        public bool PublicPropertyWithBadBrowsable { get; set; }

        [Category("Doesn't matter")]
        public bool PublicFieldWithBadCategory;

        [Category("Doesn't matter")]
        public bool PublicPropertyWithBadCategory { get; set; }

        [DefaultValue("Doesn't matter")]
        public string PublicFieldWithBadDefaultValue;

        [DefaultValue("Doesn't matter")]
        public string PublicPropertyWithBadDefaultValue { get; set; }

        [Description("Doesn't matter")]
        public bool PublicFieldWithBadDescription;

        [Description("Doesn't matter")]
        public bool PublicPropertyWithBadDescription { get; set; }

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public bool PublicFieldWithBadDesignerSerializationVisibility;

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public bool PublicPropertyWithBadDesignerSerializationVisibility { get; set; }
    }
}